package com.ruoyi.coupon.mapper;

import com.ruoyi.coupon.domain.TbCoupon;
import com.ruoyi.coupon.domain.TbCouponRecord;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 优惠券Mapper接口
 *
 * @author gzc
 * @date 2023-04-24
 */
public interface TbCouponMapper {
    /**
     * 查询优惠券
     *
     * @param couponId 优惠券主键
     * @return 优惠券
     */
    public TbCoupon selectTbCouponByCouponId(Long couponId);

    /**
     * 查询优惠券列表
     *
     * @param tbCoupon 优惠券
     * @return 优惠券集合
     */
    public List<TbCoupon> selectTbCouponList(TbCoupon tbCoupon);

    /**
     * 新增优惠券
     *
     * @param tbCoupon 优惠券
     * @return 结果
     */
    public int insertTbCoupon(TbCoupon tbCoupon);

    /**
     * 修改优惠券
     *
     * @param tbCoupon 优惠券
     * @return 结果
     */
    public int updateTbCoupon(TbCoupon tbCoupon);

    /**
     * 删除优惠券
     *
     * @param couponId 优惠券主键
     * @return 结果
     */
    public int deleteTbCouponByCouponId(Long couponId);

    /**
     * 批量删除优惠券
     *
     * @param couponIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTbCouponByCouponIds(Long[] couponIds);

    /**
     * 查询当天优惠券列表
     *
     * @param
     * @return 优惠券集合
     */
    public List<TbCoupon> selectCurrentDayTbCouponList(Date afterOneDay);

    void reduceNumByCouponId(Long couponId);

    List<TbCoupon> selectTbCouponListByCommon(TbCoupon tbCoupon);


    List<Map<String, Object>> selectMyTbCouponList(@Param("tbCouponRecordIds") List<TbCouponRecord> tbCouponRecordIds,@Param("tbCoupon") TbCoupon tbCoupon);
}
